預存程序(Stored Procedure):
是將複雜的操作,或是常用的查詢指令程式碼先放在資料庫裡,預先儲存指令。等到外部程式呼叫要使用時,就不需要每次都發布一大串的SQL指令,「預存程序」可以降低負荷,提升執行效率。
優點:
提高執行效率、減少網路流量、資加資料安全性、模組化以便重複使用。
缺點:
可攜帶性較差。
建立預存程序
Create Procedure預存程序名稱([參數陣列])
SQL_Statement
要小心()很容易忘記打。
呼叫Call 預存程序名稱()
將程序預先存進資料庫裡,不需要每次都打很長的查詢操作,只要用一行Call呼叫,就能顯示出來。
刪除預存程序DROP Procedure[IF EXISTS] 預存程序名稱
if exists 為判斷如果存在
觸發程序(TRIGGER)
為一種特殊的預存程序,與需要使用者呼叫的預存程序不同,當資料表有新增、刪除、修改時,這些動作會使得事先設定的預存程序自動執行。
例如:當你使用數位帳戶轉帳時,系統會自動寄送通知到你的電子信箱。
觸發程序分別有兩種時機:
CREATE TRIGGER 觸發程序名稱 {BEFORE|AFTER}
{INSERT|UPDATE|DELETE}
ON BaseTable
FOR EACH ROW
BEGIN
Sql指令集
END;
先寫出會員異動資料表
再建立觸發器
現在新增一筆資料
就會在會員異動資料表看到異動記錄
刪除觸發程序DROP TRIGGER [IF EXISTS]觸發程序名稱
參考資料:
書籍「動畫圖解資料庫系統理論」。